﻿// watch_dog.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <vector>

#include "process_query.h"
#include "println.h"

#pragma comment(lib, "wbemuuid.lib")

/**
 * WMI技术使用起来有很长的流程和步骤
 * 参考资料：https://blog.csdn.net/breaksoftware/article/details/8439975
 */

int main()
{
    // 更改区域设置，以便能够输出中文
    std::wcout.imbue(std::locale("chs"));

    try
    {
        process_query query;
        query.prepare();
        auto result = query.execute_query();
        println(L"获取到", result.size(), L"个进程的信息");
        for (auto& info : result)
        {
            // 查找测试程序
            if (info.get_cmd_line().find(L"cpp_console_application") != std::wstring::npos)
            {
                println(L"进程名称", info.get_name());
                println(L"进程id", std::to_wstring(info.get_id()));
                println(L"进程命令行", info.get_cmd_line());
                println(L"进程启动时间", info.get_start_time());
            }
        }
        println(L"成功");
    }
    catch (watch_dog_exception& e)
    {
        println(e.what(), L"调用失败，错误码为", e.error_code());
        return -1;
    }

    return 0;
}
